package com.example.monitordata;
import androidx.appcompat.app.AppCompatActivity;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //定义一个Uri路径指向数据库应用中的数据库info表
        Uri uri= Uri.parse("content://com.example.contentobserverdb/info");
        //注册内容观察者，参数uri指向要检测的数据库表info
        //参数true定义了检测的范围，最后一个参数就是内容观察者对象
        getContentResolver().registerContentObserver(uri,true,new MyObserver(new Handler()));
    }

    private class MyObserver extends ContentObserver {
        public MyObserver(Handler handler) {
            super(handler);
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            Log.i("监测数据变化", "有人动了你的数据库！ ");
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //取消注册内容观察者
        getContentResolver().unregisterContentObserver(new MyObserver(new Handler()));
    }
}
